/*!
\file GraphAlgorithmCombination.h
\brief Contains declaration of GraphAlgorithmCombination.
\ingroup GUI
*/

#ifndef GRAPHALGORITHMCOMBINATION_H 
#define GRAPHALGORITHMCOMBINATION_H

#include<QDockWidget>
#include<QPushButton>
#include<QLabel>
#include<QPixmap>
#include<QVBoxLayout>
#include<QWidget>

/*!
\class GraphAlgorithmCombination
\brief Display both a Graph and the name of an Algorithm. Once the user is happy with the combination it can click its button and this combination will be visualized.
\ingroup GUI
*/

class GraphAlgorithmCombination: public QDockWidget{
	Q_OBJECT
public:
	GraphAlgorithmCombination(QWidget *parent);
	//!< Constructor.
	void setAlgorithm( QString name );
	//!< Display name of Algorithm.
	void setGraph( QPixmap p );
	//!< Display QPixmap representing a Graph.
	
	QString algorithm()const{ return m_labelAlgorithm->text(); }
	//!< Returns name of Algorithm.
private:
	QWidget *m_widget;
	QVBoxLayout *m_layout;
	QLabel *m_labelAlgorithm;
	QLabel *m_labelGraph;
	QPushButton *m_button;
signals:
	void buttonClicked();
	//!< Emitted once its button is clicked, meaning this Graph and Algorithm should be visualized.
private slots:
	void clickedButton();
};

#endif

